Interprocedural Compilation of Fortran D (extended Version) Interprocedural Compilation of Fortran D

نویسندگان

  • Mary W. Hall
  • Seema Hiranandani
  • Ken Kennedy
  • Chau-Wen Tseng
چکیده

Fortran D is a version of Fortran extended with data decomposition speciications. It is designed to provide a machine-independent programming model for data-parallel applications and has heavily innuenced the design of High Performance Fortran (HPF). In previous work we described Fortran D compilation algorithms for individual procedures. This paper presents an interprocedural approach to analyze data & computation partitions, optimize communication, support dynamic data decomposition , and perform other tasks required to compile Fortran D programs. Our algorithms are designed to make interprocedural compilation eecient. First, we collect summary information after edits to solve important data-ow problems in a separate interprocedural propagation phase. Second, for non-recursive programs we compile procedures in reverse topological order to propagate additional interprocedural information during code generation. We thus limit compilation to a single pass over each procedure body. Third, recompilation analysis ensures that only procedures which have been aaected by program changes need to be recompiled, preserving the beneets of separate compilation. We also perform optimizations across procedure boundaries by delaying instantiation of the computation partition, communication, and dynamic data decomposition. Empirical results show that interprocedural optimization is crucial in achieving acceptable performance for a common application code.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Interprocedural Data Flow Based Optimizations for Distributed Memory Compilation

Data parallel languages like High Performance Fortran (HPF) are emerging as the architecture independent mode of programming distributed memory parallel machines. In this paper, we present the interprocedural optimizations required for compiling applications having irregular data access patterns, when coded in such data parallel languages. We have developed an Interprocedural Partial Redundancy...

متن کامل

InterProcedural Alias Analiysis: Implementation and Empirical Results

We report our experiences with the implementation of InterProcedural Alias Analysis (IPA) for Fortran. Implicit aliasing caused by reference parameter passing can be uncovered in a program with multiple compilation units by interprocedural analysis. For scalar objects and for full arrays, the IPA processor described here finds all alias relations. For indexed array elements and partial arrays, ...

متن کامل

Probabilistic Procedure Cloning for High-Performance Systems

For many scientific and engineering applications efficient compilation of Fortran 90 code is of paramount importance in order to exploit computing power of high performance systems. Fortran 90 subroutine calls can cause serious performance losses if copy-in/copy-out argument passing has to be applied. We present an interprocedural cloning algorithm that prevents redundant argument copying. Our ...

متن کامل

Chapter 1: Interprocedural Parallelization Analysis: a Case Study

We present an overview of our interprocedural analysis system, which applies the program analysis required for parallelization across procedure boundaries. We discuss the issues we addressed to eeciently obtain precise results in the interprocedural setting. We present the analysis required for parallelization, illustrated with an excerpt from a Fortran benchmark program. By integrating a compr...

متن کامل

DDT: A Research Tool for Automatic Data Distribution in High Performance Fortran

This article describes the main features and implementation of our automatic data distribution research tool. The tool (DDT) accepts programs written in Fortran 77 and generates High Performance Fortran (HPF) directives to map arrays onto the memories of the processors and parallelize loops, and executable statements to remap these arrays. DDT works by identifying a set of computational phases ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1996